package com.spring.framework.config.generator;

import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;

import java.util.Objects;

/**
 * bean名称生成器
 * @author xuweizhi
 */
public class MyNameGenerator implements BeanNameGenerator {

	/**
	 * bean的命名接口
	 *
	 * @param definition 用于生成名称的bean的定义
	 * @param registry   bean定义注册中心
	 * @return 自定义的bean name
	 */
	@NotNull
	@Override
	public String generateBeanName(BeanDefinition definition,BeanDefinitionRegistry registry) {
		//简单的直接返回bean的类名，仅供测试
		return Objects.requireNonNull(definition.getBeanClassName());
	}
}
